<?php

/**
 * 用户信用等级检查
 * Date: 2018/11/21
 */

namespace Lib\Paas;

class User extends Base
{
    public function __construct()
    {
        parent::__construct();
    }

    /**
     *
     * 查询用户的信用等级
     *
     * @param int $creditScore【选填，默认300，满分1000】 能够通过检查的最低信用度。数值越大，信用度越高
     * @param int $maliciousValue【选填，默认900，满分1000】 能够通过检测的账号恶意度上限值。数值越大，恶意度越高
     *
     * 信用度等级参考值：
     *
     * 信用度             信用程度
     * 小于300分           较差
     * 300分-400分         一般
     * 500分-749分         良好
     * 750分-949分         优秀
     * 950分以上           卓越
     *
     * @return bool true-通过检查（可以进行后续抽奖等流程），false-没有通过检查（不能参与抽奖等）
     *
     */
    public function checkUserCredit($creditScore = 300, $maliciousValue = 900)
    {
        //url
        $url = $this->getPaasRequestUrl('gamesafe.credit');
        $res = $this->http->get($url);
        recordLog('用户信用等级检查接口返回数据：' . var_export($res, true), __FILE__, __LINE__);

        if ($res['ret'] != '0') {
            $this->tglogReport('框架请求ULink-Paas出现异常，curl_errno：' . $res['ret'] . '，curl_error：' . $res['msg'], 'gamesafe.credit');
            recordLog('调用ULink Paas查询用户信用等级数据时出现异常！', __FILE__, __LINE__, LP_ERROR);
            return false;
        }
        $res = $res['data'];
        //Ulink-paas请求接口防刷宝接口超时，直接返回账号校验通过
        if ($res['ret'] == '-10014') {
            return true;
        }
        if ($res['ret'] != '0') {
            return false;
        }
        if ($res['data']['result'] != '0') {
            return true;
        }
        $creditData = $res['data']['data'];
        if ($creditData['credit_score'] >= $creditScore && $creditData['malicious_value'] < $maliciousValue) {
            return true;
        }
        return false;
    }
}
